package br.gov.mi.corporativo.dominio.boundary.rhmi.funcionarioendereco;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.gov.mi.corporativo.dominio.entidade.rhmi.FuncionarioEndereco;


@Path("funcionariosenderecos")
public class FuncionarioEnderecoRestAdapter extends SpringBeanAutowiringSupport {
	
	@Autowired
	private FuncionarioEnderecoEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<FuncionarioEndereco> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("/id/{idFuncionarioEndereco}")
	@Produces({MediaType.APPLICATION_JSON})
	public FuncionarioEndereco recuperarPorIdFuncionarioEndereco(@PathParam("idFuncionarioEndereco")Long idFuncionarioEndereco){
		return service.recuperarPorIdFuncionarioEndereco(idFuncionarioEndereco);
	}
	
	@GET
	@Path("/funcionario/{funcionario}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorFuncionario(@PathParam("variavel")Long funcionario){
		return service.recuperarPorFuncionario(funcionario);
	}
	
	@GET
	@Path("/tipoendereco/{idTipoEndereco}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorIdTipoEndereco(@PathParam("idTipoEndereco")Long idTipoEndereco){
		return service.recuperarPorIdTipoEndereco(idTipoEndereco);
	}
	
	@GET
	@Path("/municipio/{idMunicipio}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorIdMunicipio(@PathParam("idMunicipio")Long idMunicipio){
		return service.recuperarPorIdMunicipio(idMunicipio);
	}
	
	@GET
	@Path("/logradouro/{dsLogradouro}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorDsLogradouro(@PathParam("dsLogradouro")String dsLogradouro){
		return service.recuperarPorDsLogradouro(dsLogradouro);
	}
	
	@GET
	@Path("/complemento/{dsComplemento}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorDsComplemento(@PathParam("dsComplemento")String dsComplemento){
		return service.recuperarPorDsComplemento(dsComplemento);
	}
	
	@GET
	@Path("/bairro/{nmBairro}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorNmBairro(@PathParam("nmBairro")String nmBairro){
		return service.recuperarPorNmBairro(nmBairro);
	}
	
	@GET
	@Path("/cep/{nrCep}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorNrCep(@PathParam("nrCep")String nrCep){
		return service.recuperarPorNrCep(nrCep);
	}
	
	@GET
	@Path("/correspondencia/{stCorrespondencia}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorStCorrespondencia(@PathParam("stCorrespondencia")String stCorrespondencia){
		return service.recuperarPorStCorrespondencia(stCorrespondencia);
	}
	
	@GET
	@Path("/registro/{stRegistro}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<FuncionarioEndereco> recuperarPorStRegistro(@PathParam("stRegistro")String stRegistro){
		return service.recuperarPorStRegistro(stRegistro);
	}
	
	
}
